home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume2 / fun / nethack.d3 < prev    next >
Internet Message Format  |  1988-12-02  |  52KB

  1. Path: xanth!ames!nrl-cmf!ukma!rutgers!mit-eddie!ll-xn!adelie!infinet!ulowell!page
  2. From: page@swan.ulowell.edu (Bob Page)
  3. Newsgroups: comp.sources.amiga
  4. Subject: v02i072:  nethack - D&D-like game (amiga diffs), Part03/04
  5. Message-ID: <10403@swan.ulowell.edu>
  6. Date: 1 Dec 88 23:44:41 GMT
  7. Organization: University of Lowell, Computer Science Dept.
  8. Lines: 1820
  9. Approved: page@swan.ulowell.edu
  10.  
  11. Submitted-by: u211344@hnykun11.bitnet (Olaf 'Rhialto' Seibert)
  12. Posting-number: Volume 2, Issue 72
  13. Archive-name: fun/nethack.d3
  14.  
  15. #    This is a shell archive.
  16. #    Remove everything above and including the cut line.
  17. #    Then run the rest of the file through sh.
  18. #----cut here-----cut here-----cut here-----cut here----#
  19. #!/bin/sh
  20. # shar:    Shell Archiver
  21. #    Run the following text with /bin/sh to create:
  22. #    diffs.3
  23. # This archive created: Thu Dec  1 17:55:33 1988
  24. cat << \SHAR_EOF > diffs.3
  25.  
  26. --- 155,159 -----
  27.   # ifdef MSDOS
  28.                         wizard = TRUE;
  29. ! # else /* MSDOS */
  30.                         if(!strcmp(getlogin(), WIZARD))
  31.                                 wizard = TRUE;
  32. ***************
  33. *** 135,138
  34.   # endif
  35.                         break;
  36.   #endif
  37.                 case 'u':
  38.  
  39. --- 165,173 -----
  40.   # endif
  41.                         break;
  42. + #endif /* WIZARD */
  43. + #ifdef NEWS
  44. +               case 'n':
  45. +                       flags.nonews = TRUE;
  46. +                       break;
  47.   #endif
  48.                 case 'u':
  49. ***************
  50. *** 209,212
  51.         start_screen();
  52.   #ifdef DGK
  53.         strncat(SAVEF, plname, 8);
  54.         strcat(SAVEF, ".sav");
  55.  
  56. --- 244,250 -----
  57.         start_screen();
  58.   #ifdef DGK
  59. + # ifdef AMIGA
  60. +       strncat(SAVEF, plname, 27);
  61. + # else
  62.         strncat(SAVEF, plname, 8);
  63.   # endif
  64. ***************
  65. *** 210,213
  66.   #ifdef DGK
  67.         strncat(SAVEF, plname, 8);
  68.         strcat(SAVEF, ".sav");
  69.         cls();
  70.  
  71. --- 248,252 -----
  72.   # else
  73.         strncat(SAVEF, plname, 8);
  74. + # endif
  75.         strcat(SAVEF, ".sav");
  76.         cls();
  77. ***************
  78. *** 227,240
  79.                 pline("Hello %s%s, welcome to %s!",
  80.                         (Badged) ? "Officer " : "", plname, hname);
  81. - #ifdef WIZARD
  82. -               if (wizard && dlevel == 1)
  83. - # ifdef STOOGES
  84. - pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",
  85. -                       u.wiz_level, u.medusa_level, u.stooge_level);
  86. - # else
  87. -                   pline ("The wiz is at %d, and the medusa at %d",
  88. -                          u.wiz_level, u.medusa_level);
  89. - # endif
  90. - #endif
  91.                 flags.move = 0;
  92.         } else {
  93.  
  94. --- 266,269 -----
  95.                 pline("Hello %s%s, welcome to %s!",
  96.                         (Badged) ? "Officer " : "", plname, hname);
  97.                 flags.move = 0;
  98.         } else {
  99. ***************
  100. *** 272,275
  101.                 }
  102.                 seemons();
  103.                 docrt();
  104.  
  105.  
  106. --- 301,308 -----
  107.                 }
  108.                 seemons();
  109. + #ifdef NEWS
  110. +               if(flags.nonews || !readnews())
  111. +                       /* after reading news we did docrt() already */
  112. + #endif
  113.                 docrt();
  114.  
  115. ***************
  116. *** 276,279
  117.                 /* give welcome message before pickup messages */
  118.                 pline("Hello %s, welcome to %s!", plname, hname);
  119.  
  120.                 pickup(1);
  121.  
  122. --- 309,322 -----
  123.                 /* give welcome message before pickup messages */
  124.                 pline("Hello %s, welcome to %s!", plname, hname);
  125. + #ifdef WIZARD
  126. +               if (wizard)
  127. + # ifdef STOOGES
  128. + pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",
  129. +                       u.wiz_level, u.medusa_level, u.stooge_level);
  130. + # else
  131. +                   pline ("The wiz is at %d, and the medusa at %d",
  132. +                          u.wiz_level, u.medusa_level);
  133. + # endif
  134. + #endif
  135.  
  136.                 pickup(1);
  137. ***************
  138. *** 292,295
  139.         (void) signal(SIGINT, SIG_IGN);
  140.   #ifdef MSDOS
  141.         /* Help for Microsoft optimizer.  Otherwise main is too large -dgk*/
  142.         moveloop();
  143.  
  144. --- 335,339 -----
  145.         (void) signal(SIGINT, SIG_IGN);
  146.   #ifdef MSDOS
  147. + # ifndef AMIGA
  148.         /* Help for Microsoft optimizer.  Otherwise main is too large -dgk*/
  149.         moveloop();
  150. ***************
  151. *** 301,304
  152.         char ch;
  153.         int abort;
  154.   #endif /* MSDOS */
  155.         for(;;) {
  156.  
  157. --- 345,349 -----
  158.         char ch;
  159.         int abort;
  160. + # endif /* AMIGA */
  161.   #endif /* MSDOS */
  162.         for(;;) {
  163. ***************
  164. *** 387,391
  165.   #endif
  166.                         if(Teleportation && !rn2(85)) tele();
  167. ! #if defined(KAA) && defined(BVH)
  168.                         if(Polymorph && !rn2(100)) polyself();
  169.   #endif
  170.  
  171. --- 432,438 -----
  172.   #endif
  173.                         if(Teleportation && !rn2(85)) tele();
  174. ! /* #if defined(KAA) && defined(BVH) */
  175. ! #ifdef KAA
  176. ! # ifdef BVH
  177.                         if(Polymorph && !rn2(100)) polyself();
  178.   # endif
  179. ***************
  180. *** 389,392
  181.   #if defined(KAA) && defined(BVH)
  182.                         if(Polymorph && !rn2(100)) polyself();
  183.   #endif
  184.                         if(Searching && multi >= 0) (void) dosearch();
  185.  
  186. --- 436,440 -----
  187.   # ifdef BVH
  188.                         if(Polymorph && !rn2(100)) polyself();
  189. + # endif
  190.   #endif
  191.                         if(Searching && multi >= 0) (void) dosearch();
  192. ***************
  193. *** 477,480
  194.                         }
  195.                 } else if(multi == 0) {
  196.                         rhack((char *) 0);
  197.                 }
  198.  
  199. --- 525,531 -----
  200.                         }
  201.                 } else if(multi == 0) {
  202. + #ifdef MAIL
  203. +                       ckmailstatus();
  204. + #endif
  205.                         rhack((char *) 0);
  206.                 }
  207. ***************
  208. *** 502,506
  209.   /*
  210.    * plname is filled either by an option (-u Player  or  -uPlayer) or
  211. !  * explicitly (-w implies wizard) or by askname.
  212.    * It may still contain a suffix denoting pl_character.
  213.    */
  214.  
  215. --- 553,557 -----
  216.   /*
  217.    * plname is filled either by an option (-u Player  or  -uPlayer) or
  218. !  * explicitly (-D implies wizard) or by askname.
  219.    * It may still contain a suffix denoting pl_character.
  220.    */
  221. ***************
  222. *** 511,517
  223.         ct = 0;
  224.         while((c = getchar()) != '\n'){
  225. - #ifdef MSDOS
  226. -               msmsg("%c", c);
  227. - #endif
  228.                 if(c == EOF) error("End of input\n");
  229.                 /* some people get confused when their erase char is not ^H */
  230.  
  231. --- 562,565 -----
  232.         ct = 0;
  233.         while((c = getchar()) != '\n'){
  234.                 if(c == EOF) error("End of input\n");
  235.                 /* some people get confused when their erase char is not ^H */
  236. ***************
  237. *** 516,521
  238.                 if(c == EOF) error("End of input\n");
  239.                 /* some people get confused when their erase char is not ^H */
  240. !               if(c == '\010') {
  241. !                       if(ct) ct--;
  242.                         continue;
  243.                 }
  244.  
  245. --- 564,574 -----
  246.                 if(c == EOF) error("End of input\n");
  247.                 /* some people get confused when their erase char is not ^H */
  248. !               if(c == '\b') {
  249. !                       if(ct) {
  250. !                               ct--;
  251. ! #ifdef MSDOS
  252. !                               msmsg("\b \b");
  253. ! #endif
  254. !                       }
  255.                         continue;
  256.                 }
  257. ***************
  258. *** 522,525
  259.                 if(c != '-')
  260.                 if(c < 'A' || (c > 'Z' && c < 'a') || c > 'z') c = '_';
  261.                 if(ct < sizeof(plname)-1) plname[ct++] = c;
  262.         }
  263.  
  264. --- 575,581 -----
  265.                 if(c != '-')
  266.                 if(c < 'A' || (c > 'Z' && c < 'a') || c > 'z') c = '_';
  267. + #ifdef MSDOS
  268. +               msmsg("%c", c);
  269. + #endif
  270.                 if(ct < sizeof(plname)-1) plname[ct++] = c;
  271.         }
  272. ***************
  273. *** 547,550
  274.  
  275.   #ifdef DGK
  276.         /* Change the default drive as well.
  277.          */
  278.  
  279. --- 603,607 -----
  280.  
  281.   #ifdef DGK
  282. + # ifndef AMIGA
  283.         /* Change the default drive as well.
  284.          */
  285. ***************
  286. *** 550,553
  287.          */
  288.         chdrive(dir);
  289.   #endif
  290.  
  291.  
  292. --- 607,611 -----
  293.          */
  294.         chdrive(dir);
  295. + # endif
  296.   #endif
  297.  
  298. ***************
  299. *** 559,562
  300.  
  301.             if(dir == NULL)
  302.                 dir = ".";
  303.             if((fd = open(RECORD, 2)) < 0) {
  304.  
  305. --- 617,623 -----
  306.  
  307.             if(dir == NULL)
  308. + #ifdef AMIGA
  309. +               dir = "";
  310. + #else
  311.                 dir = ".";
  312.   #endif
  313. ***************
  314. *** 560,563
  315.             if(dir == NULL)
  316.                 dir = ".";
  317.             if((fd = open(RECORD, 2)) < 0) {
  318.   #ifdef DGK
  319.  
  320. --- 621,625 -----
  321.   #else
  322.                 dir = ".";
  323. + #endif
  324.             if((fd = open(RECORD, 2)) < 0) {
  325.   #ifdef DGK
  326. diff -bc2 pcunix.c Amiga:pcunix.c
  327. No differences encountered
  328. diff -bc2 permonst.h Amiga:permonst.h
  329. No differences encountered
  330. diff -bc2 polyself.c Amiga:polyself.c
  331. *** polyself.c  Wed May  4 15:08:48 1988
  332. --- Amiga:polyself.c      Thu Aug  4 13:04:55 1988
  333. ***************
  334. *** 45,49
  335.             if (!rn2(10)) flags.female = !flags.female;
  336.             tmp = u.uhpmax;
  337. !           tmp2 = u.ulevel;
  338.             u.usym = '@';
  339.             prme();
  340.  
  341. --- 45,49 -----
  342.             if (!rn2(10)) flags.female = !flags.female;
  343.             tmp = u.uhpmax;
  344. !           if (!(tmp2 = u.ulevel)) tmp2 = 1;   /* Seems this happened once */
  345.             u.usym = '@';
  346.             prme();
  347. ***************
  348. *** 50,54
  349.             u.mtimedone = u.mh = u.mhmax = 0;
  350.             u.ulevel = u.ulevel-2+rn2(5);
  351. !           if (u.ulevel > 127 || u.ulevel == 0) u.ulevel = 1;
  352.             if (u.ulevel > 14) u.ulevel = 14;
  353.             if (u.ulevel == 1) u.uexp = rnd(10);
  354.  
  355. --- 50,54 -----
  356.             u.mtimedone = u.mh = u.mhmax = 0;
  357.             u.ulevel = u.ulevel-2+rn2(5);
  358. !           if (u.ulevel > 127 || u.ulevel <= 0) u.ulevel = 1;
  359.             if (u.ulevel > 14) u.ulevel = 14;
  360.             if (u.ulevel == 1) u.uexp = rnd(10);
  361. ***************
  362. *** 76,81
  363.   #ifdef BVH
  364.                 if(Polymorph_control) {
  365. !                   u.uhp = (u.uhp <= 0) ? 1 : u.uhp;
  366. !                   u.uhpmax = (u.uhpmax <= 0) ? 1  : u.uhpmax;
  367.                 } else {
  368.   #endif
  369.  
  370. --- 76,81 -----
  371.   #ifdef BVH
  372.                 if(Polymorph_control) {
  373. !                   if (u.uhp <= 0) u.uhp = 1;
  374. !                   if (u.uhpmax <= 0) u.uhpmax = 1;
  375.                 } else {
  376.   #endif
  377. ***************
  378. *** 162,166
  379.        else if (uarmu) {
  380.                 pline("The transformation causes you to tear out of your
  381. shirt!");
  382. !               if (uarmu) useup(uarmu);
  383.         }
  384.   #endif
  385.  
  386. --- 162,166 -----
  387.        else if (uarmu) {
  388.                 pline("The transformation causes you to tear out of your
  389. shirt!");
  390. !               /*if (uarmu)*/ useup(uarmu);
  391.       }
  392.   #endif
  393. diff -bc2 pray.c Amiga:pray.c
  394. *** pray.c      Wed May  4 15:08:54 1988
  395. --- Amiga:pray.c  Sun Jul 24 16:53:07 1988
  396. ***************
  397. *** 405,409
  398.                         }
  399.   #ifdef KAA
  400. !                       if(uwep && (uwep->olet == WEAPON_SYM)) {
  401.                             if (uwep->cursed) {
  402.                                 uwep->cursed=0;
  403.  
  404. --- 405,409 -----
  405.                         }
  406.   #ifdef KAA
  407. !                       if(uwep->olet == WEAPON_SYM) {
  408.                             if (uwep->cursed) {
  409.                                 uwep->cursed=0;
  410. diff -bc2 pri.c Amiga:pri.c
  411. *** pri.c       Wed May  4 15:08:54 1988
  412. --- Amiga:pri.c   Sun Jul 24 17:07:24 1988
  413. ***************
  414. *** 19,23
  415.   swallowed()
  416.   {
  417. !       char *ulook = "|@|";
  418.         ulook[1] = u.usym;
  419.  
  420.  
  421. --- 19,23 -----
  422.   swallowed()
  423.   {
  424. !       static char ulook[] = "|@|";   /*OIS*/
  425.         ulook[1] = u.usym;
  426.  
  427. ***************
  428. *** 24,27
  429.         cls();
  430.         curs(u.ux-1, u.uy+1);
  431.         fputs("/-\\", stdout);
  432.         curx = u.ux+2;
  433.  
  434. --- 24,30 -----
  435.         cls();
  436.         curs(u.ux-1, u.uy+1);
  437. + #ifdef stdout_puts    /* Defined when not via normal files */
  438. +       stdout_puts("/-\\");       /* OIS, for AMIGA */
  439. + #else
  440.         fputs("/-\\", stdout);
  441.   #endif
  442. ***************
  443. *** 25,28
  444.         curs(u.ux-1, u.uy+1);
  445.         fputs("/-\\", stdout);
  446.         curx = u.ux+2;
  447.         curs(u.ux-1, u.uy+2);
  448.  
  449. --- 28,32 -----
  450.   #else
  451.         fputs("/-\\", stdout);
  452. + #endif
  453.         curx = u.ux+2;
  454.         curs(u.ux-1, u.uy+2);
  455. ***************
  456. *** 27,30
  457.         curx = u.ux+2;
  458.         curs(u.ux-1, u.uy+2);
  459.         fputs(ulook, stdout);
  460.         curx = u.ux+2;
  461.  
  462. --- 31,37 -----
  463.         curx = u.ux+2;
  464.         curs(u.ux-1, u.uy+2);
  465. + #ifdef stdout_puts
  466. +       stdout_puts(ulook);        /* for AMIGA */
  467. + #else
  468.         fputs(ulook, stdout);
  469.   #endif
  470. ***************
  471. *** 28,31
  472.         curs(u.ux-1, u.uy+2);
  473.         fputs(ulook, stdout);
  474.         curx = u.ux+2;
  475.         curs(u.ux-1, u.uy+3);
  476.  
  477. --- 35,39 -----
  478.   #else
  479.         fputs(ulook, stdout);
  480. + #endif
  481.         curx = u.ux+2;
  482.         curs(u.ux-1, u.uy+3);
  483. ***************
  484. *** 30,33
  485.         curx = u.ux+2;
  486.         curs(u.ux-1, u.uy+3);
  487.         fputs("\\-/", stdout);
  488.         curx = u.ux+2;
  489.  
  490. --- 38,44 -----
  491.         curx = u.ux+2;
  492.         curs(u.ux-1, u.uy+3);
  493. + #ifdef stdout_puts
  494. +       stdout_puts("\\-/");       /* for AMIGA */
  495. + #else
  496.         fputs("\\-/", stdout);
  497.   #endif
  498. ***************
  499. *** 31,34
  500.         curs(u.ux-1, u.uy+3);
  501.         fputs("\\-/", stdout);
  502.         curx = u.ux+2;
  503.         u.udispl = 1;
  504.  
  505. --- 42,46 -----
  506.   #else
  507.         fputs("\\-/", stdout);
  508. + #endif
  509.         curx = u.ux+2;
  510.         u.udispl = 1;
  511. ***************
  512. *** 130,134
  513.         if(!Invisible) {
  514.                 levl[(u.udisx = u.ux)][(u.udisy = u.uy)].scrsym = u.usym;
  515. !               levl[u.udisx][u.udisy].seen = 1;
  516.                 u.udispl = 1;
  517.         } else  u.udispl = 0;
  518.  
  519. --- 142,146 -----
  520.         if(!Invisible) {
  521.                 levl[(u.udisx = u.ux)][(u.udisy = u.uy)].scrsym = u.usym;
  522. !               RM_SET_SEEN(levl[u.udisx][u.udisy]);
  523.                 u.udispl = 1;
  524.         } else  u.udispl = 0;
  525. ***************
  526. *** 140,144
  527.   /* This nonsense should disappear soon --------------------------------- */
  528.  
  529. ! #if defined(DGK) && !defined(MSDOSCOLOR)
  530.         /* I don't know DEC Rainbows, but if HILITE_COLOR is applicable,
  531.          * the !defined(HILITE_COLOR) will have to be compensated for.
  532.  
  533. --- 152,163 -----
  534.   /* This nonsense should disappear soon --------------------------------- */
  535.  
  536. ! /* #if defined(DGK) && !defined(MSDOSCOLOR) */
  537. ! #ifdef DGK
  538. ! # define XXX
  539. ! #endif
  540. ! #ifdef MSDOSCOLOR
  541. ! # undef XXX
  542. ! #endif
  543. ! #ifdef XXX
  544.         /* I don't know DEC Rainbows, but if HILITE_COLOR is applicable,
  545.          * the !defined(HILITE_COLOR) will have to be compensated for.
  546. ***************
  547. *** 151,156
  548.                 for(y = 0; y < ROWNO; y++)
  549.                         for(x = 0; x < COLNO; x++)
  550. !                               if((room = &levl[x][y])->new) {
  551. !                                       room->new = 0;
  552.                                         at(x,y,room->scrsym);
  553.                                 } else if(room->seen)
  554.  
  555. --- 170,175 -----
  556.                 for(y = 0; y < ROWNO; y++)
  557.                         for(x = 0; x < COLNO; x++)
  558. !                               if((room = &levl[x][y]), RM_NEW(*room)) {
  559. !                                       RM_CLR_NEW(*room);
  560.                                         at(x,y,room->scrsym);
  561.                                 } else if(RM_SEEN(*room))
  562. ***************
  563. *** 154,158
  564.                                         room->new = 0;
  565.                                         at(x,y,room->scrsym);
  566. !                               } else if(room->seen)
  567.                                         at(x,y,room->scrsym);
  568.                 multipleAts = FALSE;
  569.  
  570. --- 173,177 -----
  571.                                         RM_CLR_NEW(*room);
  572.                                         at(x,y,room->scrsym);
  573. !                               } else if(RM_SEEN(*room))
  574.                                         at(x,y,room->scrsym);
  575.                 multipleAts = FALSE;
  576. ***************
  577. *** 169,174
  578.                         memset(buf, ' ', COLNO);
  579.                         for(x = 0, start = -1, end = -1; x < COLNO; x++)
  580. !                               if((room = &levl[x][y])->new) {
  581. !                                       room->new = 0;
  582.                                         buf[x] = room->scrsym;
  583.                                         if (start < 0)
  584.  
  585. --- 188,193 -----
  586.                         memset(buf, ' ', COLNO);
  587.                         for(x = 0, start = -1, end = -1; x < COLNO; x++)
  588. !                               if((room = &levl[x][y]), RM_NEW(*room)) {
  589. !                                       RM_CLR_NEW(*room);
  590.                                         buf[x] = room->scrsym;
  591.                                         if (start < 0)
  592. ***************
  593. *** 175,179
  594.                                                 start = x;
  595.                                         end = x;
  596. !                               } else if(room->seen) {
  597.                                         buf[x] = room->scrsym;
  598.                                         if (start < 0)
  599.  
  600. --- 194,198 -----
  601.                                                 start = x;
  602.                                         end = x;
  603. !                               } else if(RM_SEEN(*room)) {
  604.                                         buf[x] = room->scrsym;
  605.                                         if (start < 0)
  606. ***************
  607. *** 184,187
  608.                                 buf[end + 1] = '\0';
  609.                                 curs(start, y + 2);
  610.                                 fputs(buf + start, stdout);
  611.                                 curx = end + 1;
  612.  
  613. --- 203,209 -----
  614.                                 buf[end + 1] = '\0';
  615.                                 curs(start, y + 2);
  616. + #ifdef stdout_puts
  617. +                               stdout_puts(buf + start);
  618. + #else
  619.                                 fputs(buf + start, stdout);
  620.   #endif
  621. ***************
  622. *** 185,188
  623.                                 curs(start, y + 2);
  624.                                 fputs(buf + start, stdout);
  625.                                 curx = end + 1;
  626.                         }
  627.  
  628. --- 207,211 -----
  629.   #else
  630.                                 fputs(buf + start, stdout);
  631. + #endif
  632.                                 curx = end + 1;
  633.                         }
  634. ***************
  635. *** 192,197
  636.         for(y = 0; y < ROWNO; y++)
  637.                 for(x = 0; x < COLNO; x++)
  638. !                       if((room = &levl[x][y])->new) {
  639. !                               room->new = 0;
  640.                                 at(x,y,room->scrsym);
  641.                         } else if(room->seen)
  642.  
  643. --- 215,220 -----
  644.         for(y = 0; y < ROWNO; y++)
  645.                 for(x = 0; x < COLNO; x++)
  646. !                       if((room = &levl[x][y]), RM_NEW(*room)) {
  647. !                               RM_CLR_NEW(*room);
  648.                                 at(x,y,room->scrsym);
  649.                         } else if (RM_SEEN(*room))
  650. ***************
  651. *** 195,199
  652.                                 room->new = 0;
  653.                                 at(x,y,room->scrsym);
  654. !                       } else if(room->seen)
  655.                                 at(x,y,room->scrsym);
  656.   #endif
  657.  
  658. --- 218,222 -----
  659.                                 RM_CLR_NEW(*room);
  660.                                 at(x,y,room->scrsym);
  661. !                       } else if (RM_SEEN(*room))
  662.                                 at(x,y,room->scrsym);
  663.   #endif
  664. ***************
  665. *** 198,201
  666.                                 at(x,y,room->scrsym);
  667.   #endif
  668.         scrlx = COLNO;
  669.         scrly = ROWNO;
  670.  
  671. --- 221,225 -----
  672.                                 at(x,y,room->scrsym);
  673.   #endif
  674. + #undef XXX
  675.         scrlx = COLNO;
  676.         scrly = ROWNO;
  677. ***************
  678. *** 231,236
  679.                 if(y < ROWNO) {
  680.                     for(x = xmin; x < COLNO; x++) {
  681. !                       if((room = &levl[x][y])->new) {
  682. !                               room->new = 0;
  683.                                 at(x,y,room->scrsym);
  684.                         } else
  685.  
  686. --- 255,260 -----
  687.                 if(y < ROWNO) {
  688.                     for(x = xmin; x < COLNO; x++) {
  689. !                       if((room = &levl[x][y]), RM_NEW(*room)) {
  690. !                               RM_CLR_NEW(*room);
  691.                                 at(x,y,room->scrsym);
  692.                         } else
  693. ***************
  694. *** 235,239
  695.                                 at(x,y,room->scrsym);
  696.                         } else
  697. !                               if(room->seen)
  698.                                         at(x,y,room->scrsym);
  699.                     }
  700.  
  701. --- 259,263 -----
  702.                                 at(x,y,room->scrsym);
  703.                         } else
  704. !                               if (RM_SEEN(*room))
  705.                                         at(x,y,room->scrsym);
  706.                     }
  707. ***************
  708. *** 294,298
  709.                 if(mtmp->data->mlet == ';')
  710.                         mtmp->minvis = (u.ustuck != mtmp &&
  711. !                                       levl[mtmp->mx][mtmp->my].typ == POOL);
  712.                 pmon(mtmp);
  713.   #ifndef NOWORM
  714.  
  715. --- 318,322 -----
  716.                 if(mtmp->data->mlet == ';')
  717.                         mtmp->minvis = (u.ustuck != mtmp &&
  718. !                                       RM_TYP(levl[mtmp->mx][mtmp->my]) ==
  719. POOL);
  720.                 pmon(mtmp);
  721.   #ifndef NOWORM
  722. ***************
  723. *** 348,353
  724.         for(y = scrly; y <= scrhy; y++)
  725.                 for(x = scrlx; x <= scrhx; x++)
  726. !                       if((room = &levl[x][y])->new) {
  727. !                               room->new = 0;
  728.                                 at(x,y,room->scrsym);
  729.                         }
  730.  
  731. --- 372,377 -----
  732.         for(y = scrly; y <= scrhy; y++)
  733.                 for(x = scrlx; x <= scrhx; x++)
  734. !                       if((room = &levl[x][y]), RM_NEW(*room)) {
  735. !                               RM_CLR_NEW(*room);
  736.                                 at(x,y,room->scrsym);
  737.                         }
  738. ***************
  739. *** 383,387
  740.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
  741.                 u.uen, u.uenmax, u.uac);
  742. ! #  else
  743.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  744.   #  endif
  745.  
  746. --- 407,411 -----
  747.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
  748.                 u.uen, u.uenmax, u.uac);
  749. ! #  else /* !KAA */
  750.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  751.   #  endif /* KAA */
  752. ***************
  753. *** 385,390
  754.   #  else
  755.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  756. ! #  endif
  757. ! # else
  758.                 "Level %-2d  Gold %-5lu  Hp %3d(%d)  Ac %-2d  ",
  759.                 dlevel, u.ugold,
  760.  
  761. --- 409,414 -----
  762.   #  else /* !KAA */
  763.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  764. ! #  endif /* KAA */
  765. ! # else /* !SPELLS */
  766.                 "Level %-2d  Gold %-5lu  Hp %3d(%d)  Ac %-2d  ",
  767.                 dlevel, u.ugold,
  768. ***************
  769. *** 392,396
  770.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
  771.                 u.uac);
  772. ! #  else
  773.                 u.uhp, u.uhpmax, u.uac);
  774.   #  endif
  775.  
  776. --- 416,420 -----
  777.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax : u.uhpmax,
  778.                 u.uac);
  779. ! #  else /* !KAA */
  780.                 u.uhp, u.uhpmax, u.uac);
  781.   #  endif /* KAA */
  782. ***************
  783. *** 394,400
  784.   #  else
  785.                 u.uhp, u.uhpmax, u.uac);
  786. ! #  endif
  787. ! # endif
  788. ! #else
  789.   # ifdef SPELLS
  790.                 "Level %-2d Hp %3d(%d) Energy %3d(%d) Ac %-2d ",
  791.  
  792. --- 418,424 -----
  793.   #  else /* !KAA */
  794.                 u.uhp, u.uhpmax, u.uac);
  795. ! #  endif /* KAA */
  796. ! # endif /* SPELLS */
  797. ! #else /* !GOLD_ON_BOTL */
  798.   # ifdef SPELLS
  799.                 "Level %-2d Hp %3d(%d) Energy %3d(%d) Ac %-2d ",
  800. ***************
  801. *** 403,407
  802.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
  803.                 u.uen, u.uenmax, u.uac);
  804. ! #  else
  805.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  806.   #  endif
  807.  
  808. --- 427,431 -----
  809.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
  810.                 u.uen, u.uenmax, u.uac);
  811. ! #  else /* !KAA */
  812.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  813.   #  endif /* KAA */
  814. ***************
  815. *** 405,410
  816.   #  else
  817.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  818. ! #  endif
  819. ! # else
  820.                 "Level %-2d   Hp %3d(%d)   Ac %-2d   ",
  821.                 dlevel,
  822.  
  823. --- 429,434 -----
  824.   #  else /* !KAA */
  825.                 u.uhp, u.uhpmax, u.uen, u.uenmax, u.uac);
  826. ! #  endif /* KAA */
  827. ! # else /* !SPELLS */
  828.                 "Level %-2d   Hp %3d(%d)   Ac %-2d   ",
  829.                 dlevel,
  830. ***************
  831. *** 412,416
  832.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
  833.                 u.uac);
  834. ! #  else
  835.                 u.uhp, u.uhpmax, u.uac);
  836.   #  endif
  837.  
  838. --- 436,440 -----
  839.                 u.mtimedone ? u.mh : u.uhp, u.mtimedone ? u.mhmax, u.uhpmax,
  840.                 u.uac);
  841. ! #  else /* !KAA */
  842.                 u.uhp, u.uhpmax, u.uac);
  843.   #  endif /* KAA */
  844. ***************
  845. *** 414,420
  846.   #  else
  847.                 u.uhp, u.uhpmax, u.uac);
  848. ! #  endif
  849. ! # endif
  850. ! #endif
  851.   #ifdef KAA
  852.         if (u.mtimedone)
  853.  
  854. --- 438,444 -----
  855.   #  else /* !KAA */
  856.                 u.uhp, u.uhpmax, u.uac);
  857. ! #  endif /* KAA */
  858. ! # endif /* SPELLS */
  859. ! #endif /* GOLD_ON_BOTL */
  860.   #ifdef KAA
  861.         if (u.mtimedone)
  862. ***************
  863. *** 463,467
  864.   }
  865.  
  866. ! #if defined(WAN_PROBING) || defined(KAA)
  867.   mstatusline(mtmp) register struct monst *mtmp; {
  868.         pline("Status of %s: ", monnam(mtmp));
  869.  
  870. --- 487,499 -----
  871.   }
  872.  
  873. ! /* #if defined(WAN_PROBING) || defined(KAA) */
  874. ! #ifdef WAN_PROBING
  875. ! # define XXX
  876. ! #endif
  877. ! #ifdef KAA
  878. ! # define XXX
  879. ! #endif
  880. !
  881. ! #ifdef XXX
  882.   mstatusline(mtmp) register struct monst *mtmp; {
  883.         pline("Status of %s: ", monnam(mtmp));
  884. ***************
  885. *** 485,488
  886.   }
  887.   #endif
  888.  
  889.   cls(){
  890.  
  891. --- 517,521 -----
  892.   }
  893.   #endif
  894. + #undef XXX
  895.  
  896.   cls(){
  897. diff -bc2 rip.c Amiga:rip.c
  898. *** rip.c       Wed May  4 15:09:00 1988
  899. --- Amiga:rip.c   Wed Jul 27 20:41:10 1988
  900. ***************
  901. *** 43,48
  902.                 !strncmp(killer, "the ", 4) ? "" :
  903.                 !strcmp(killer, "starvation") ? "" :
  904. !               !strncmp(killer, "Mr.") ? "" :
  905. !               !strncmp(killer, "Ms.") ? "" :
  906.   #ifdef STOOGES
  907.                 !strcmp(killer, "Larry") ? "" :
  908.  
  909. --- 43,48 -----
  910.                 !strncmp(killer, "the ", 4) ? "" :
  911.                 !strcmp(killer, "starvation") ? "" :
  912. !               !strncmp(killer, "Mr.", 3) ? "" :
  913. !               !strncmp(killer, "Ms.", 3) ? "" :
  914.   #ifdef STOOGES
  915.                 !strcmp(killer, "Larry") ? "" :
  916. ***************
  917. *** 84,87
  918.   }
  919.  
  920.   center(line, text) int line; char *text; {
  921.   register char *ip,*op;
  922.  
  923. --- 84,91 -----
  924.   }
  925.  
  926. + /*
  927. +  * dirty to write into unnamed literal strings...
  928. +  * they might be in a read-only code-segment! (OIS)
  929. +  */
  930.   center(line, text) int line; char *text; {
  931.   register char *ip,*op;
  932. diff -bc2 rm.h Amiga:rm.h
  933. *** rm.h        Wed May  4 15:09:00 1988
  934. --- Amiga:rm.h    Sun Jul 24 23:45:54 1988
  935. ***************
  936. *** 116,120
  937.   #define       ERRCHAR ']'
  938.  
  939. ! #define MAXPCHARS     17      /* maximum number of mapped characters */
  940.  
  941.   #define IS_CORNER(x)  ((x) == TLCORN_SYM || (x) == TRCORN_SYM \
  942.  
  943. --- 116,120 -----
  944.   #define ERRCHAR ']'
  945.  
  946. ! #define MAXPCHARS     18      /* maximum number of mapped characters */
  947.  
  948.   #define IS_CORNER(x)    ((x) == TLCORN_SYM || (x) == TRCORN_SYM \
  949. ***************
  950. *** 126,130
  951.    * the size of temporary files and save files.
  952.    */
  953. - #ifdef MSDOS
  954.   /* Save disk space by using unsigned char's instead of unsigned ints
  955.    */
  956.  
  957. --- 126,129 -----
  958.    * the size of temporary files and save files.
  959.    */
  960.   /* Save disk space by using unsigned char's instead of unsigned ints
  961.    */
  962. ***************
  963. *** 129,132
  964.   /* Save disk space by using unsigned char's instead of unsigned ints
  965.    */
  966.   struct rm {
  967.         uchar scrsym;
  968.  
  969. --- 128,132 -----
  970.   /* Save disk space by using unsigned char's instead of unsigned ints
  971.    */
  972. + #ifdef BITFIELD_BUG
  973.   struct rm {
  974.         uchar scrsym;
  975. ***************
  976. *** 131,134
  977.   struct rm {
  978.         uchar scrsym;
  979.         unsigned typ:5;
  980.         unsigned new:1;
  981.  
  982. --- 131,176 -----
  983.   struct rm {
  984.         uchar scrsym;
  985. +     uchar flags;
  986. +  /* unsigned short typ:5;
  987. +     unsigned short new:1;
  988. +     unsigned short seen:1;
  989. +     unsigned short lit:1; */
  990. + };
  991. +
  992. + # define RM_TYPM    0x1F
  993. + # define RM_NEWM    0x20
  994. + # define RM_SEENM   0x40
  995. + # define RM_LITM    0x80
  996. +
  997. +        /* The first macro evaluates room twice... */
  998. + # define RM_SET_TYP(room, type) ((room).flags = ( (room).flags & ~RM_TYPM ) |
  999. (type))
  1000. + # define RM_TYP(room)           ((room).flags &   RM_TYPM)
  1001. + # define RM_SET_NEW(room)       ((room).flags |=  RM_NEWM)
  1002. + # define RM_CLR_NEW(room)       ((room).flags &= ~RM_NEWM)
  1003. + # define RM_NEW(room)           ((room).flags &   RM_NEWM)
  1004. + # define RM_SET_SEEN(room)      ((room).flags |=  RM_SEENM)
  1005. + # define RM_CLR_SEEN(room)      ((room).flags &= ~RM_SEENM)
  1006. + # define RM_SEEN(room)          ((room).flags &   RM_SEENM)
  1007. + # define RM_SET_LIT(room)       ((room).flags |=  RM_LITM)
  1008. + # define RM_CLR_LIT(room)       ((room).flags &= ~RM_LITM)
  1009. + # define RM_LIT(room)           ((room).flags &   RM_LITM)
  1010. +
  1011. + #else  /* no BITFIELD_BUG */
  1012. +
  1013. + # define RM_SET_TYP(room, type) ((room).typ = type)
  1014. + # define RM_TYP(room)           ((room).typ)
  1015. + # define RM_SET_NEW(room)       ((room).new = 1)
  1016. + # define RM_CLR_NEW(room)       ((room).new = 0)
  1017. + # define RM_NEW(room)           ((room).new)
  1018. + # define RM_SET_SEEN(room)      ((room).seen = 1)
  1019. + # define RM_CLR_SEEN(room)      ((room).seen = 0)
  1020. + # define RM_SEEN(room)          ((room).seen)
  1021. + # define RM_SET_LIT(room)       ((room).lit = 1)
  1022. + # define RM_CLR_LIT(room)       ((room).lit = 0)
  1023. + # define RM_LIT(room)           ((room).lit)
  1024. +
  1025. + # ifdef MSDOS
  1026. + struct rm {
  1027. +       uchar scrsym;
  1028.         unsigned typ:5;
  1029.         unsigned new:1;
  1030. ***************
  1031. *** 136,140
  1032.         unsigned lit:1;
  1033.   };
  1034. ! #else
  1035.   struct rm {
  1036.         char scrsym;
  1037.  
  1038. --- 178,182 -----
  1039.         unsigned lit:1;
  1040.   };
  1041. ! # else
  1042.   struct rm {
  1043.         char scrsym;
  1044. ***************
  1045. *** 144,148
  1046.         Bitfield(lit,1);
  1047.   };
  1048. ! #endif /* MSDOS /**/
  1049.   extern struct rm levl[COLNO][ROWNO];
  1050.  
  1051.  
  1052. --- 186,191 -----
  1053.         Bitfield(lit,1);
  1054.   };
  1055. ! # endif /* MSDOS /**/
  1056. ! #endif /* BITFIELD_BUG */
  1057.   extern struct rm levl[COLNO][ROWNO];
  1058.  
  1059. diff -bc2 rnd.c Amiga:rnd.c
  1060. No differences encountered
  1061. diff -bc2 rumors.c Amiga:rumors.c
  1062. No differences encountered
  1063. diff -bc2 search.c Amiga:search.c
  1064. *** search.c    Fri Jan 22 09:08:44 1988
  1065. --- Amiga:search.c        Mon Jul 11 16:26:24 1988
  1066. ***************
  1067. *** 16,23
  1068.  
  1069.         if(u.uswallow) return(0);
  1070. !       for(lx = u.ux; (num = levl[lx-1][u.uy].typ) && num != CORR; lx--) ;
  1071. !       for(hx = u.ux; (num = levl[hx+1][u.uy].typ) && num != CORR; hx++) ;
  1072. !       for(ly = u.uy; (num = levl[u.ux][ly-1].typ) && num != CORR; ly--) ;
  1073. !       for(hy = u.uy; (num = levl[u.ux][hy+1].typ) && num != CORR; hy++) ;
  1074.         num = 0;
  1075.         for(zy = ly; zy <= hy; zy++)
  1076.  
  1077. --- 16,23 -----
  1078.  
  1079.       if(u.uswallow) return(0);
  1080. !     for(lx = u.ux; (num = RM_TYP(levl[lx-1][u.uy])) && num != CORR; lx--) ;
  1081. !     for(hx = u.ux; (num = RM_TYP(levl[hx+1][u.uy])) && num != CORR; hx++) ;
  1082. !     for(ly = u.uy; (num = RM_TYP(levl[u.ux][ly-1])) && num != CORR; ly--) ;
  1083. !     for(hy = u.uy; (num = RM_TYP(levl[u.ux][hy+1])) && num != CORR; hy++) ;
  1084.       num = 0;
  1085.       for(zy = ly; zy <= hy; zy++)
  1086. ***************
  1087. *** 23,28
  1088.         for(zy = ly; zy <= hy; zy++)
  1089.                 for(zx = lx; zx <= hx; zx++) {
  1090. !                       if(levl[zx][zy].typ == SDOOR) {
  1091. !                               levl[zx][zy].typ = DOOR;
  1092.                                 atl(zx, zy, DOOR_SYM);
  1093.                                 num++;
  1094.  
  1095. --- 23,28 -----
  1096.       for(zy = ly; zy <= hy; zy++)
  1097.         for(zx = lx; zx <= hx; zx++) {
  1098. !           if(RM_TYP(levl[zx][zy]) == SDOOR) {
  1099. !               RM_SET_TYP(levl[zx][zy], DOOR);
  1100.                 atl(zx, zy, DOOR_SYM);
  1101.                 num++;
  1102. ***************
  1103. *** 27,32
  1104.                                 atl(zx, zy, DOOR_SYM);
  1105.                                 num++;
  1106. !                       } else if(levl[zx][zy].typ == SCORR) {
  1107. !                               levl[zx][zy].typ = CORR;
  1108.                                 atl(zx, zy, CORR_SYM);
  1109.                                 num++;
  1110.  
  1111. --- 27,32 -----
  1112.                 atl(zx, zy, DOOR_SYM);
  1113.                 num++;
  1114. !           } else if(RM_TYP(levl[zx][zy]) == SCORR) {
  1115. !               RM_SET_TYP(levl[zx][zy], CORR);
  1116.                 atl(zx, zy, CORR_SYM);
  1117.                 num++;
  1118. ***************
  1119. *** 67,71
  1120.         for(x = u.ux-1; x < u.ux+2; x++)
  1121.         for(y = u.uy-1; y < u.uy+2; y++) if(x != u.ux || y != u.uy) {
  1122. !               if(levl[x][y].typ == SDOOR) {
  1123.                         if(rn2(7-fund)) continue;
  1124.                         levl[x][y].typ = DOOR;
  1125.  
  1126. --- 67,71 -----
  1127.       for(x = u.ux-1; x < u.ux+2; x++)
  1128.       for(y = u.uy-1; y < u.uy+2; y++) if(x != u.ux || y != u.uy) {
  1129. !       if(RM_TYP(levl[x][y]) == SDOOR) {
  1130.             if(rn2(7-fund)) continue;
  1131.             RM_SET_TYP(levl[x][y], DOOR);
  1132. ***************
  1133. *** 69,74
  1134.                 if(levl[x][y].typ == SDOOR) {
  1135.                         if(rn2(7-fund)) continue;
  1136. !                       levl[x][y].typ = DOOR;
  1137. !                       levl[x][y].seen = 0;    /* force prl */
  1138.                         prl(x,y);
  1139.                         nomul(0);
  1140.  
  1141. --- 69,74 -----
  1142.         if(RM_TYP(levl[x][y]) == SDOOR) {
  1143.             if(rn2(7-fund)) continue;
  1144. !           RM_SET_TYP(levl[x][y], DOOR);
  1145. !           RM_CLR_SEEN(levl[x][y]);    /* force prl */
  1146.             prl(x,y);
  1147.             nomul(0);
  1148. ***************
  1149. *** 73,77
  1150.                         prl(x,y);
  1151.                         nomul(0);
  1152. !               } else if(levl[x][y].typ == SCORR) {
  1153.                         if(rn2(7-fund)) continue;
  1154.                         levl[x][y].typ = CORR;
  1155.  
  1156. --- 73,77 -----
  1157.             prl(x,y);
  1158.             nomul(0);
  1159. !       } else if(RM_TYP(levl[x][y]) == SCORR) {
  1160.             if(rn2(7-fund)) continue;
  1161.             RM_SET_TYP(levl[x][y], CORR);
  1162. ***************
  1163. *** 75,80
  1164.                 } else if(levl[x][y].typ == SCORR) {
  1165.                         if(rn2(7-fund)) continue;
  1166. !                       levl[x][y].typ = CORR;
  1167. !                       levl[x][y].seen = 0;    /* force prl */
  1168.                         prl(x,y);
  1169.                         nomul(0);
  1170.  
  1171. --- 75,80 -----
  1172.         } else if(RM_TYP(levl[x][y]) == SCORR) {
  1173.             if(rn2(7-fund)) continue;
  1174. !           RM_SET_TYP(levl[x][y], CORR);
  1175. !           RM_CLR_SEEN(levl[x][y]);    /* force prl */
  1176.             prl(x,y);
  1177.             nomul(0);
  1178. diff -bc2 sit.c Amiga:sit.c
  1179. *** sit.c       Wed May  4 15:09:08 1988
  1180. --- Amiga:sit.c   Sun Jul 24 18:14:59 1988
  1181. ***************
  1182. *** 17,21
  1183.  
  1184.                 pline("You are floating in the air, you can't sit!");
  1185. !       } else  if(IS_THRONE(levl[u.ux][u.uy].typ)) {
  1186.  
  1187.                 pline("As you sit in the opulent throne");
  1188.  
  1189. --- 17,21 -----
  1190.  
  1191.                 pline("You are floating in the air, you can't sit!");
  1192. !       } else  if(IS_THRONE(RM_TYP(levl[u.ux][u.uy]))) {
  1193.  
  1194.                 pline("As you sit in the opulent throne");
  1195. ***************
  1196. *** 134,138
  1197.                 } else  pline("you feel somehow out of place...");
  1198.  
  1199. !               if (!rn2(3) && IS_THRONE(levl[u.ux][u.uy].typ)) {
  1200.  
  1201.                         pline("The throne vanishes in a puff of logic.");
  1202.  
  1203. --- 134,138 -----
  1204.                 } else  pline("you feel somehow out of place...");
  1205.  
  1206. !               if (!rn2(3) && IS_THRONE(RM_TYP(levl[u.ux][u.uy])))    {
  1207.  
  1208.                         pline("The throne vanishes in a puff of logic.");
  1209. ***************
  1210. *** 138,142
  1211.                         pline("The throne vanishes in a puff of logic.");
  1212.   /*                    levl[u.ux][u.uy].scrsym = ROOM_SYM; */
  1213. !                       levl[u.ux][u.uy].typ = ROOM;
  1214.                 }
  1215.  
  1216.  
  1217. --- 138,142 -----
  1218.                         pline("The throne vanishes in a puff of logic.");
  1219.   /*                    levl[u.ux][u.uy].scrsym = ROOM_SYM; */
  1220. !                       RM_SET_TYP(levl[u.ux][u.uy], ROOM);
  1221.                 }
  1222.  
  1223. ***************
  1224. *** 146,150
  1225.   #endif /* NEWCLASS /**/
  1226.  
  1227. ! #if defined(NEWCLASS) || defined(PRAYERS) || defined(HARD)
  1228.   rndcurse() {                  /* curse a few inventory items at random! */
  1229.  
  1230.  
  1231. --- 146,161 -----
  1232.   #endif /* NEWCLASS /**/
  1233.  
  1234. ! /* #if defined(NEWCLASS) || defined(PRAYERS) || defined(HARD) */
  1235. ! #ifdef NEWCLASS
  1236. ! # define XXX
  1237. ! #endif
  1238. ! #ifdef PRAYERS
  1239. ! # define XXX
  1240. ! #endif
  1241. ! #ifdef HARD
  1242. ! # define XXX
  1243. ! #endif
  1244. !
  1245. ! #ifdef XXX
  1246.   rndcurse() {                    /* curse a few inventory items at random! */
  1247.  
  1248. diff -bc2 spell.h Amiga:spell.h
  1249. No differences encountered
  1250. diff -bc2 steal.c Amiga:steal.c
  1251. No differences encountered
  1252. diff -bc2 timeout.c Amiga:timeout.c
  1253. No differences encountered
  1254. diff -bc2 topl.c Amiga:topl.c
  1255. No differences encountered
  1256. diff -bc2 track.c Amiga:track.c
  1257. No differences encountered
  1258. diff -bc2 vault.c Amiga:vault.c
  1259. *** vault.c     Fri Jan 22 09:08:50 1988
  1260. --- Amiga:vault.c         Mon Jul 11 16:37:50 1988
  1261. ***************
  1262. *** 47,52
  1263.                         return;
  1264.                 crm = &levl[fcx][fcy];
  1265. !               crm->typ = EGD->fakecorr[fcbeg].ftyp;
  1266. !               if(!crm->typ) crm->seen = 0;
  1267.                 newsym(fcx,fcy);
  1268.                 EGD->fcbeg++;
  1269.  
  1270. --- 47,52 -----
  1271.             return;
  1272.         crm = &levl[fcx][fcy];
  1273. !       RM_SET_TYP(*crm, EGD->fakecorr[fcbeg].ftyp);
  1274. !       if(!RM_TYP(*crm)) RM_CLR_SEEN(*crm);
  1275.         newsym(fcx,fcy);
  1276.         EGD->fcbeg++;
  1277. ***************
  1278. *** 96,100
  1279.                 x = u.ux+dd;
  1280.               if(x < 0 || x > COLNO-1) continue;
  1281. !             if(levl[x][y].typ == CORR) goto fnd;
  1282.             }
  1283.           }
  1284.  
  1285. --- 96,100 -----
  1286.                         x = u.ux+dd;
  1287.                     if(x < 0 || x > COLNO-1) continue;
  1288. !                   if(RM_TYP(levl[x][y]) == CORR) goto fnd;
  1289.                 }
  1290.             }
  1291. ***************
  1292. *** 103,107
  1293.         tele();
  1294.         return;
  1295. ! fnd:
  1296.         gx = x; gy = y;
  1297.  
  1298.  
  1299. --- 103,107 -----
  1300.         tele();
  1301.         return;
  1302. !     fnd:
  1303.         gx = x; gy = y;
  1304.  
  1305. ***************
  1306. *** 108,112
  1307.         /* next find a good place for a door in the wall */
  1308.         x = u.ux; y = u.uy;
  1309. !       while(levl[x][y].typ == ROOM) {
  1310.                 register int dx,dy;
  1311.  
  1312.  
  1313. --- 108,112 -----
  1314.         /* next find a good place for a door in the wall */
  1315.         x = u.ux; y = u.uy;
  1316. !       while(RM_TYP(levl[x][y]) == ROOM) {
  1317.             register int dx,dy;
  1318.  
  1319. ***************
  1320. *** 156,161
  1321.         EGD->fakecorr[0].fx = x;
  1322.         EGD->fakecorr[0].fy = y;
  1323. !       EGD->fakecorr[0].ftyp = levl[x][y].typ;
  1324. !       levl[x][y].typ = DOOR;
  1325.         EGD->fcend = 1;
  1326.       }
  1327.  
  1328. --- 156,161 -----
  1329.         EGD->fakecorr[0].fx = x;
  1330.         EGD->fakecorr[0].fy = y;
  1331. !       EGD->fakecorr[0].ftyp = RM_TYP(levl[x][y]);
  1332. !       RM_SET_TYP(levl[x][y], DOOR);
  1333.         EGD->fcend = 1;
  1334.       }
  1335. ***************
  1336. *** 182,186
  1337.             if(nx == x || ny == y) if(nx != x || ny != y)
  1338.             if(isok(nx,ny))
  1339. !           if(!IS_WALL(typ = (crm = &levl[nx][ny])->typ) && typ != POOL) {
  1340.                 register int i;
  1341.                 for(i = EGD->fcbeg; i < EGD->fcend; i++)
  1342.  
  1343. --- 182,186 -----
  1344.         if(nx == x || ny == y) if(nx != x || ny != y)
  1345.         if(isok(nx,ny))
  1346. !       if(!IS_WALL(typ = RM_TYP(*(crm = &levl[nx][ny]))) && typ != POOL) {
  1347.             register int i;
  1348.             for(i = EGD->fcbeg; i < EGD->fcend; i++)
  1349. ***************
  1350. *** 193,197
  1351.                 EGD->gddone = 1;
  1352.                 if(ACCESSIBLE(typ)) goto newpos;
  1353. !               crm->typ = (typ == SCORR) ? CORR : DOOR;
  1354.                 goto proceed;
  1355.             }
  1356.  
  1357. --- 193,197 -----
  1358.             EGD->gddone = 1;
  1359.             if(ACCESSIBLE(typ)) goto newpos;
  1360. !           RM_SET_TYP(*crm, (typ == SCORR) ? CORR : DOOR);
  1361.             goto proceed;
  1362.         }
  1363. ***************
  1364. *** 196,200
  1365.                 goto proceed;
  1366.             }
  1367. !     nextnxy:  ;
  1368.         }
  1369.         nx = x;
  1370.  
  1371. --- 196,200 -----
  1372.             goto proceed;
  1373.         }
  1374. ! nextnxy:    ;
  1375.       }
  1376.       nx = x;
  1377. ***************
  1378. *** 206,210
  1379.         if(abs(gx-x) >= abs(gy-y)) nx += dx; else ny += dy;
  1380.  
  1381. !       while((typ = (crm = &levl[nx][ny])->typ) != 0) {
  1382.         /* in view of the above we must have IS_WALL(typ) or typ == POOL */
  1383.         /* must be a wall here */
  1384.  
  1385. --- 206,210 -----
  1386.       if(abs(gx-x) >= abs(gy-y)) nx += dx; else ny += dy;
  1387.  
  1388. !     while((typ = RM_TYP(*(crm = &levl[nx][ny]))) != 0) {
  1389.       /* in view of the above we must have IS_WALL(typ) or typ == POOL */
  1390.       /* must be a wall here */
  1391. ***************
  1392. *** 211,215
  1393.                 if(isok(nx+nx-x,ny+ny-y) && typ != POOL &&
  1394.   #ifdef RPH
  1395. !                   SPACE_POS(levl[nx+nx-x][ny+ny-y].typ)){
  1396.   #else
  1397.                     ZAP_POS(levl[nx+nx-x][ny+ny-y].typ)){
  1398.  
  1399. --- 211,215 -----
  1400.         if(isok(nx+nx-x,ny+ny-y) && typ != POOL &&
  1401.   #ifdef RPH
  1402. !           SPACE_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  1403.   #else
  1404.             ZAP_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  1405. ***************
  1406. *** 213,217
  1407.                     SPACE_POS(levl[nx+nx-x][ny+ny-y].typ)){
  1408.   #else
  1409. !                   ZAP_POS(levl[nx+nx-x][ny+ny-y].typ)){
  1410.   #endif
  1411.                         crm->typ = DOOR;
  1412.  
  1413. --- 213,217 -----
  1414.             SPACE_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  1415.   #else
  1416. !           ZAP_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  1417.   #endif
  1418.             RM_SET_TYP(*crm, DOOR);
  1419. ***************
  1420. *** 215,219
  1421.                     ZAP_POS(levl[nx+nx-x][ny+ny-y].typ)){
  1422.   #endif
  1423. !                       crm->typ = DOOR;
  1424.                         goto proceed;
  1425.                 }
  1426.  
  1427. --- 215,219 -----
  1428.             ZAP_POS(RM_TYP(levl[nx+nx-x][ny+ny-y]))){
  1429.   #endif
  1430. !           RM_SET_TYP(*crm, DOOR);
  1431.             goto proceed;
  1432.         }
  1433. ***************
  1434. *** 227,231
  1435.                 }
  1436.                 /* I don't like this, but ... */
  1437. !               crm->typ = DOOR;
  1438.                 goto proceed;
  1439.         }
  1440.  
  1441. --- 227,231 -----
  1442.         }
  1443.         /* I don't like this, but ... */
  1444. !       RM_SET_TYP(*crm, DOOR);
  1445.         goto proceed;
  1446.       }
  1447. ***************
  1448. *** 230,234
  1449.                 goto proceed;
  1450.         }
  1451. !       crm->typ = CORR;
  1452.   proceed:
  1453.         if(cansee(nx,ny)) {
  1454.  
  1455. --- 230,234 -----
  1456.         goto proceed;
  1457.       }
  1458. !     RM_SET_TYP(*crm, CORR);
  1459.   proceed:
  1460.       if(cansee(nx,ny)) {
  1461. diff -bc2 version.c Amiga:version.c
  1462. *** version.c   Wed May  4 15:09:22 1988
  1463. --- Amiga:version.c       Sun Jul 24 22:06:54 1988
  1464. ***************
  1465. *** 8,12
  1466.  
  1467.   #ifdef BETA
  1468. !       pline("%s Net%s Beta Version %s - last build %s.",
  1469.   #else
  1470.         pline("%s Net%s Version %s - last build %s.",
  1471.  
  1472. --- 8,12 -----
  1473.  
  1474.   #ifdef BETA
  1475. !       pline("%s Net%s Beta Version %s - last built %s.",
  1476.   #else
  1477.         pline("%s Net%s Version %s - last built %s.",
  1478. ***************
  1479. *** 10,14
  1480.         pline("%s Net%s Beta Version %s - last build %s.",
  1481.   #else
  1482. !       pline("%s Net%s Version %s - last build %s.",
  1483.   #endif
  1484.   #ifdef UNIX
  1485.  
  1486. --- 10,14 -----
  1487.         pline("%s Net%s Beta Version %s - last built %s.",
  1488.   #else
  1489. !       pline("%s Net%s Version %s - last built %s.",
  1490.   #endif
  1491.   #ifdef UNIX
  1492. ***************
  1493. *** 16,19
  1494.   #endif
  1495.   #ifdef MSDOS
  1496.                 "PC"
  1497.   #endif
  1498.  
  1499. --- 16,22 -----
  1500.   #endif
  1501.   #ifdef MSDOS
  1502. + # ifdef AMIGA
  1503. +       "Amiga"
  1504. + # else
  1505.                 "PC"
  1506.   # endif
  1507. ***************
  1508. *** 17,20
  1509.   #ifdef MSDOS
  1510.                 "PC"
  1511.   #endif
  1512.   #ifdef QUEST
  1513.  
  1514. --- 20,24 -----
  1515.   # else
  1516.                 "PC"
  1517. + # endif
  1518.   #endif
  1519.   #ifdef QUEST
  1520. ***************
  1521. *** 41,44
  1522.   #endif
  1523.   #ifdef MSDOS
  1524.                 "PC"
  1525.   #endif
  1526.  
  1527. --- 45,51 -----
  1528.   #endif
  1529.   #ifdef MSDOS
  1530. + # ifdef AMIGA
  1531. +       "Amiga"
  1532. + # else
  1533.                 "PC"
  1534.   # endif
  1535. ***************
  1536. *** 42,45
  1537.   #ifdef MSDOS
  1538.                 "PC"
  1539.   #endif
  1540.   #ifdef QUEST
  1541.  
  1542. --- 49,53 -----
  1543.   # else
  1544.                 "PC"
  1545. + # endif
  1546.   #endif
  1547.   #ifdef QUEST
  1548. ***************
  1549. *** 75,78
  1550.         pg_line("    Steve Linhart      Bruce Mewborne     Janet Walz");
  1551.         pg_line("    and...             The Unknown Hacker");
  1552.         set_pager(1);
  1553.         return(0);
  1554.  
  1555. --- 83,91 -----
  1556.         pg_line("    Steve Linhart      Bruce Mewborne     Janet Walz");
  1557.         pg_line("    and...             The Unknown Hacker");
  1558. +
  1559. + #ifdef AMIGA
  1560. +       pg_line("");
  1561. +       pg_line("Amiga NetHack was ported for you by Olaf Seibert
  1562. (KosmoSoft).");
  1563. + #endif
  1564.         set_pager(1);
  1565.         return(0);
  1566. diff -bc2 wield.c Amiga:wield.c
  1567. No differences encountered
  1568. diff -bc2 wizard.c Amiga:wizard.c
  1569. *** wizard.c    Wed May  4 15:09:22 1988
  1570. --- Amiga:wizard.c        Sun Jul 24 22:16:12 1988
  1571. ***************
  1572. *** 10,14
  1573.   extern struct obj *carrying(), *mksobj_at();
  1574.  
  1575. ! #if defined(HARD) || defined(DGKMOD)
  1576.   # ifdef SAC
  1577.   char  nasties[] = "cdDeImoPTUVwxXz3&,:;";
  1578.  
  1579. --- 10,22 -----
  1580.   extern struct obj *carrying(), *mksobj_at();
  1581.  
  1582. ! /* #if defined(HARD) || defined(DGKMOD)*/
  1583. ! #ifdef HARD
  1584. ! # define XXX
  1585. ! #endif
  1586. ! #ifdef DKGMOD
  1587. ! # define XXX
  1588. ! #endif
  1589. !
  1590. ! #ifdef XXX
  1591.   # ifdef SAC
  1592.   char  nasties[] = "cdDeImoPTUVwxXz3&,:;";
  1593. ***************
  1594. *** 20,23
  1595.   #define       WIZSHOT     6   /* one chance in WIZSHOT that wizard will try
  1596. magic */
  1597.   #endif
  1598.  
  1599.   #define       BOLT_LIM    8   /* from this distance D and 1 will try to hit
  1600. you */
  1601.  
  1602. --- 28,32 -----
  1603.   #define WIZSHOT     6 /* one chance in WIZSHOT that wizard will try magic */
  1604.   #endif
  1605. + #undef XXX
  1606.  
  1607.   #define BOLT_LIM    8 /* from this distance D and 1 will try to hit you */
  1608. ***************
  1609. *** 172,176
  1610.                                 miss(oclass->oc_name, mtmp);
  1611.                         else {
  1612. ! #endif
  1613.                                 hit(oclass->oc_name, mtmp, exclam(damage));
  1614.                                 mtmp->mhp -= damage;
  1615.  
  1616. --- 181,185 -----
  1617.                                 miss(oclass->oc_name, mtmp);
  1618.                         else {
  1619. ! #endif /* KAA */
  1620.                                 hit(oclass->oc_name, mtmp, exclam(damage));
  1621.                                 mtmp->mhp -= damage;
  1622. ***************
  1623. *** 192,196
  1624.                                                 mtmp->mblinded = 127;
  1625.                                 } else
  1626. ! # endif
  1627.                                     if(obj->otyp == ENORMOUS_ROCK) {
  1628.                                         mksobj_at(ENORMOUS_ROCK, bhitpos.x,
  1629. bhitpos.y);
  1630.  
  1631. --- 201,205 -----
  1632.                                                 mtmp->mblinded = 127;
  1633.                                 } else
  1634. ! # endif /* KOPS */
  1635.                                     if(obj->otyp == ENORMOUS_ROCK) {
  1636.                                         mksobj_at(ENORMOUS_ROCK, bhitpos.x,
  1637. bhitpos.y);
  1638. ***************
  1639. *** 199,203
  1640.                                 }
  1641.                         }
  1642. ! #endif
  1643.                 }
  1644.                 if (bhitpos.x == u.ux && bhitpos.y == u.uy) {
  1645.  
  1646. --- 208,212 -----
  1647.                                 }
  1648.                         }
  1649. ! #endif /* KAA */
  1650.                 }
  1651.                 if (bhitpos.x == u.ux && bhitpos.y == u.uy) {
  1652. ***************
  1653. *** 209,213
  1654.   /* Cream pies must disappear if they hit or miss. */
  1655.                         { int hit, blindinc, thitu();
  1656. !                        if (!(hit = thitu(8, (obj->otyp != CREAM_PIE) ?
  1657. rnd(oclass->wldam) : 0, oclass->oc_name))
  1658.                             && obj->otyp != CREAM_PIE
  1659.   # else
  1660.  
  1661. --- 218,223 -----
  1662.   /* Cream pies must disappear if they hit or miss. */
  1663.                         { int hit, blindinc, thitu();
  1664. !                        if (!(hit = thitu(8, (obj->otyp != CREAM_PIE) ?
  1665. !                               rnd(oclass->wldam) : 0, oclass->oc_name))
  1666.                             && obj->otyp != CREAM_PIE
  1667.   # else
  1668. ***************
  1669. *** 222,226
  1670.                                 stackobj(fobj);
  1671.                          }
  1672. ! #if defined(KAA) && defined(KOPS)
  1673.                          if(hit && obj->otyp == CREAM_PIE) {
  1674.                             if(!Blind)  pline("Yeech! You've been creamed.");
  1675.  
  1676. --- 232,238 -----
  1677.                                 stackobj(fobj);
  1678.                          }
  1679. ! /* #if defined(KAA) && defined(KOPS) */
  1680. ! #ifdef KAA
  1681. ! # ifdef KOPS
  1682.                          if(hit && obj->otyp == CREAM_PIE) {
  1683.                             if(!Blind)  pline("Yeech! You've been creamed.");
  1684. ***************
  1685. *** 234,237
  1686.                          }
  1687.                         }
  1688.   #endif
  1689.                         range = 0;
  1690.  
  1691. --- 246,250 -----
  1692.                          }
  1693.                         }
  1694. + # endif
  1695.   #endif
  1696.                         range = 0;
  1697. ***************
  1698. *** 239,243
  1699.                 tmp_at(bhitpos.x, bhitpos.y);
  1700.   #ifdef SINKS
  1701. !               if(IS_SINK(levl[bhitpos.x][bhitpos.y].typ))
  1702.                         break;  /* thrown objects fall on sink */
  1703.   #endif
  1704.  
  1705. --- 252,256 -----
  1706.                 tmp_at(bhitpos.x, bhitpos.y);
  1707.   #ifdef SINKS
  1708. !               if(IS_SINK(RM_TYP(levl[bhitpos.x][bhitpos.y])))
  1709.                         break;  /* thrown objects fall on sink */
  1710.   #endif
  1711. ***************
  1712. *** 275,279
  1713.                 for (x = mtmp->mx, y = mtmp->my; x != u.ux || y != u.uy;
  1714.                                 x += sgn(tx), y += sgn(ty))
  1715. !                       if (!ACCESSIBLE(levl[x][y].typ))
  1716.                                 return(1);
  1717.  
  1718.  
  1719. --- 288,292 -----
  1720.                 for (x = mtmp->mx, y = mtmp->my; x != u.ux || y != u.uy;
  1721.                                 x += sgn(tx), y += sgn(ty))
  1722. !                       if (!ACCESSIBLE(RM_TYP(levl[x][y])))
  1723.                                 return(1);
  1724.  
  1725. diff -bc2 worm.c Amiga:worm.c
  1726. No differences encountered
  1727. diff -bc2 worn.c Amiga:worn.c
  1728. No differences encountered
  1729. diff -bc2 wseg.h Amiga:wseg.h
  1730. No differences encountered
  1731. diff -bc2 you.h Amiga:you.h
  1732. *** you.h       Wed May  4 15:09:24 1988
  1733. --- Amiga:you.h   Tue Jul 26 14:49:08 1988
  1734. ***************
  1735. *** 89,93
  1736.         int mh, mhmax, mtimedone, umonnum;      /* for polymorph-self */
  1737.         schar mstr, mstrmax;                    /* for saving ustr/ustrmax */
  1738. ! #if defined(KOPS) && defined(KAA)
  1739.         unsigned ucreamed;
  1740.   #endif
  1741.  
  1742. --- 89,95 -----
  1743.         int mh, mhmax, mtimedone, umonnum;      /* for polymorph-self */
  1744.         schar mstr, mstrmax;                    /* for saving ustr/ustrmax */
  1745. ! /* #if defined(KOPS) && defined(KAA) */
  1746. ! #ifdef KOPS
  1747. ! # ifdef KAA
  1748.         unsigned ucreamed;
  1749.   # endif
  1750. ***************
  1751. *** 91,94
  1752.   #if defined(KOPS) && defined(KAA)
  1753.         unsigned ucreamed;
  1754.   #endif
  1755.         unsigned uswallow;              /* set if swallowed by a monster */
  1756.  
  1757. --- 93,97 -----
  1758.   # ifdef KAA
  1759.         unsigned ucreamed;
  1760. + # endif
  1761.   #endif
  1762.         unsigned uswallow;              /* set if swallowed by a monster */
  1763. diff -bc2 unixmain.c Amiga:aux/unixmain.c
  1764. *** unixmain.c  Wed May  4 15:09:16 1988
  1765. --- Amiga:aux/unixmain.c  Wed Jul 27 23:35:07 1988
  1766. ***************
  1767. *** 242,246
  1768.                 pline("Hello %s, welcome to %s!", plname, gamename);
  1769.   #ifdef WIZARD
  1770. !               if (wizard && dlevel == 1)
  1771.   # ifdef STOOGES
  1772.   pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",
  1773.  
  1774. --- 242,246 -----
  1775.                 pline("Hello %s, welcome to %s!", plname, gamename);
  1776.   #ifdef WIZARD
  1777. !               if (wizard)
  1778.   # ifdef STOOGES
  1779.   pline ("The wiz is at %d, the medusa is at %d, and the stooges are at %d",
  1780.  
  1781.  
  1782. diff -bc2 objnam.c Amiga:objnam.c
  1783. *** objnam.c    Wed May  4 15:08:40 1988
  1784. --- Amiga:objnam.c        Sun Jul 24 15:56:30 1988
  1785. ***************
  1786. *** 550,554
  1787.   #endif
  1788.         p = eos(bp);
  1789. ! #if defined(KOPS) && !defined(KJSMODS)
  1790.         if (!strcmp(p-3, "kop")) {
  1791.                 *(p-3) = 'K';
  1792.  
  1793. --- 550,556 -----
  1794.   #endif
  1795.         p = eos(bp);
  1796. ! /* #if defined(KOPS) && !defined(KJSMODS) */
  1797. ! #ifdef KOPS
  1798. ! # ifndef KJSMODS
  1799.         if (!strcmp(p-3, "kop")) {
  1800.                 *(p-3) = 'K';
  1801. ***************
  1802. *** 556,559
  1803.                 goto srch;
  1804.         }
  1805.   #endif
  1806.         for(i = 0; i < sizeof(wrpsym); i++) {
  1807.  
  1808. --- 558,562 -----
  1809.                 goto srch;
  1810.         }
  1811. + # endif
  1812.   #endif
  1813.         for(i = 0; i < sizeof(wrpsym); i++) {
  1814. diff -bc2 options.c Amiga:options.c
  1815. No differences encountered
  1816. diff -bc2 pager.c Amiga:pager.c
  1817. *** pager.c     Wed May  4 15:08:44 1988
  1818. --- Amiga:pager.c         Sun Jul 24 16:09:30 1988
  1819. ***************
  1820. *** 9,12
  1821.   #include      <signal.h>
  1822.   #include       "hack.h"
  1823.   extern int CO, LI;    /* usually COLNO and ROWNO+2 */
  1824.   extern char *CD;
  1825. SHAR_EOF
  1826. #    End of shell archive
  1827. exit 0
  1828. -- 
  1829. Bob Page, U of Lowell CS Dept.  page@swan.ulowell.edu  ulowell!page
  1830. Have five nice days.
  1831.